﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Ext.Net;
using System.Collections.Generic;
using Sio.Mdm.Client;
using Sio.Mdm.BF.Sifranti;
using Sio.Mdm.Entities;
using Sio.Mdm.Types.Database;
using Sio.Mdm.BF.Administracija;
using Sio.Mdm.BF.Idm;
using Sio.Mdm.Web.Controls;


namespace Sio.Mdm.Web.Organizacija
{
	public partial class NovKaderPedagoski : Controls.Page
	{
		protected override void OnLoad(EventArgs e)
		{
			base.OnLoad(e);
			if (!IsPostBack && !X.IsAjaxRequest)
			{
				//delovna mesta
				EntityCollection<DelovnoMesto> delMesto = new EntityCollection<DelovnoMesto>(
					new Filter<DelovnoMesto>().Where(r => r.DelovnoMestoId != null).OrderBy(r => r.Naziv));
				this.StoreDelovnaMesta.DataSource = delMesto;
				this.StoreDelovnaMesta.DataBind();

				//nazivi učiteljev
				EntityCollection<NazivUcitelja> nazivi = new EntityCollection<NazivUcitelja>(
					new Filter<NazivUcitelja>().Where(r => r.NazivUciteljaId != null).OrderBy(r => r.Naziv));
				this.StoreNaziviUciteljev.DataSource = nazivi;
				this.StoreNaziviUciteljev.DataBind();

				//poklici
				EntityCollection<Poklic> poklici = new EntityCollection<Poklic>(
					new Filter<Poklic>().Where(r => r.PoklicId != null).OrderBy(r => r.Naziv));
				this.StorePoklici.DataSource = poklici;
				this.StorePoklici.DataBind();
			}
		}		


		#region OnDialogButton
		protected override void OnDialogButton(DialogButtonEventArgs e)
		{
			List<string> napake = new List<string>();

			if (String.IsNullOrEmpty(this.inputIme.Text) | (this.inputIme.Text.Length <= 2))
				napake.Add(" - ime");
			if (String.IsNullOrEmpty(this.inputPriimek.Text) | (this.inputPriimek.Text.Length <= 2))
				napake.Add(" - priimek");
			if (String.IsNullOrEmpty(this.inputDs.Text) | (this.inputDs.Text.Length <= 2))
				napake.Add(" - davčna številka");
			if (this.cbDelovnaMesta.SelectedItem.Value == "")
				napake.Add(" - delovno mesto");
			if (this.cbNaziviUciteljev.SelectedItem.Value == "")
				napake.Add(" - naziv učitelja");
			if (this.cbPoklic.SelectedItem.Value == "")
				napake.Add(" - poklic");

			if (napake.Count > 0)
			{
				e.Success = false;
				X.Msg.Alert("Manjkajoči podatki", "Vpisati morate še naslednja vnosna polja: <br />" + String.Join("<br />", napake.ToArray())).Show();
				return;
			}
			else
			{
				KaderPedagoski kader = EntityFactory.CreateInstance<KaderPedagoski>();
				kader.Ime = this.inputIme.Value.ToString();
				kader.Priimek = this.inputPriimek.Value.ToString();
				kader.DavcnaStevilka = Convert.ToInt32(this.inputDs.Value);
				kader.DelovnoMestoId = Convert.ToInt32(this.cbDelovnaMesta.SelectedItem.Value);
				kader.NazivUciteljaId = Convert.ToInt32(this.cbNaziviUciteljev.SelectedItem.Value);
				kader.PoklicId = Convert.ToInt32(this.cbPoklic.SelectedItem.Value);

				//obvezen dodatek za trigger
				kader.OrganizacijaId = this.UserSession.Organizacija;
				kader.TipVlogeId = 4;

				var slService = ServiceFactory.GetService<IKaderPedagoskiService>();
				slService.Create(kader, this.UserSession);				
			}
			base.OnDialogButton(e);
		}
		#endregion
	}
}
